//
//  NSString+Extension.h
//  XCY
//
//  Created by XCY
//  Copyright (c) 2015年 HQ. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

extern NSString * const CHINAPYNUM;  //禁止输入特殊字符
extern NSString * const NUMBERS;   //只能输入数字
extern NSString * const NUMAZ;  //数字和字母
extern NSString * const NUMDoubleTwo;  //带两位小数的金额
@interface NSString (Extension)
/**
 *  获取字体大小
 *  @param font 字体格式
 *  @param maxW 显示宽度
 */
- (CGSize)sizeWithFont:(UIFont *)font maxW:(CGFloat)maxW;
/**
 *  获取字体大小
 *  @param font 字体格式
 */
- (CGSize)sizeWithFont:(UIFont *)font;
/**
 *  时间转格式化后的时间(没有毫秒)
 *  @return 如：刚刚 、1分钟前、 1小时前、 1天、昨天、1年..
 */
- (NSString *)dateFormatComponents;

/**
 *  时间转格式化后的时间(有毫秒)
 *  @return 如：刚刚 、1分钟前、 1小时前、 1天、昨天、1年..
 */
- (NSString *)dateMilliSecondFormatComponents;

/**
 *  时间转格式化后的时间
 *  @return 如：今天 11：18；昨天19：35； 周一 03-20  周日 03-19
 */
- (NSString *)dateFormat2ComponentsWithDateFormat:(NSString *)dateFormat;

/**
 *  本月、5月、2016年5月
 */
- (NSString *)yearMonthWithDateFormat:(NSString *)dateFormat;

/**
 *  134****7890
 */
- (NSString *)phoneShield;

/**
 *  手机号码的有效性判断
 *  检测是否是手机号码
 */
- (BOOL)isMobileNumber;

//去除两端空格
-(NSString *)trim;

//是否不为空
+ (BOOL)isNotEmptyWithStr:(NSString *)str;

//是否为空
+ (BOOL)isEmptyWithStr:(NSString *)str;

//是否大于0
+ (BOOL)isValidGreaterZeroWithNum:(NSInteger)num;

//字典转json字符串
+ (NSString *)dicToStringdic:(id)dic;

/**
 *  传入正则表达式，一般用于限制特殊字符
 */
- (NSString *)doNotWantString:(NSString *)string block:(void (^)())block;
/**
 *  正则表达式，控制中文、字母、数字等
 */
- (NSString *)regexDoNotWantPattern:(NSString *)pattern block:(void (^)())block;


//手机号码去掉（ ， ），－
//字符串拿过来去掉特殊的字符
-(NSString *)removeSpecial;


//手机号码格式化3-4-4
- (NSString *)phone344Format;

//银行卡号6 6 6
- (NSString *)bankNumFormat;

/**
 *  传入数字限制，一般用于限制只能输入数字
 */
- (NSString *)doNotWantString2:(NSString *)string block:(void (^)())block;

//去除价格开头的0
- (NSInteger)getPrice;

//处理json格式的字符串中的换行符、回车符
- (NSString *)deleteSpecialCode;

//金额大写
- (NSString *)digitUppercase;

//银行卡卡号 4 4 4 4 2
- (NSString *)bankFormat;

//正则验证是否正确
- (BOOL)evaluateWithRegStr:(NSString *)regStr replacementString:(NSString *)string;

/**
 * 金额、可输入两位小数
 * @params maxAmount 最大金额
 * @params string 当前输入的字符
 * @Retrun result 是否可以进行编辑
 */
- (BOOL)regTwoDecimalPlacesAmountWithMaxAmount:(NSInteger)maxAmount replacementString:(NSString *)string maxAmountErrorBlock:(void (^)())maxAmountErrorBlock matchErrorBlock:(void (^)())matchErrorBlock;

//设置title和value颜色，返回NSMutableAttributedString
+ (NSMutableAttributedString *)title:(NSString *)title value:(NSString *)value titleColor:(UIColor *)titleColor valueColor:(UIColor *)valueColor;

@end
